package qiyu.live.living.interfaces;

import org.qiyu.live.common.interfaces.vo.PageWrapper;
import qiyu.live.living.dto.req.LivingRoomReqDTO;
import qiyu.live.living.dto.req.OnlinePkReqDTO;
import qiyu.live.living.dto.resp.LivingRoomRespDTO;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: sfx
 * Date: 2023-10-24
 * Time: 19:54
 */
public interface ILivingRoomRpc {

    /**
     * 开启直播
     *
     * @param livingRoomReqDTO 直播间
     * @return 返回插入成功的行数
     */
    Integer startLivingRoom(LivingRoomReqDTO livingRoomReqDTO);

    /**
     * 关闭直播
     *
     * @param livingRoomReqDTO 直播间
     * @return 返回是否成功关播
     */
    boolean closeLivingRoom(LivingRoomReqDTO livingRoomReqDTO);


    /**
     * 返回直播间列表
     *
     * @param livingRoomReqDTO dto
     * @return 返回直播间列表
     */
    PageWrapper<LivingRoomRespDTO> list(LivingRoomReqDTO livingRoomReqDTO);

    /**
     * 根据直播间id查询直播间信息
     *
     * @param roomId roomId
     * @return 返回直播间列表
     */
    LivingRoomRespDTO queryByRoomId(Integer roomId);

    /**
     * 根据roomId批量的查询出userId-->查询出当前直播在线的userId
     *
     * @param livingRoomReqDTO 直播间dto
     * @return 返回批量userId
     */
    List<Long> queryUserIdsByRoomId(LivingRoomReqDTO livingRoomReqDTO);

    /**
     * 直播pk接口
     *
     * @param onlinePkReqDTO pk dto对象
     */
    boolean onlinePk(OnlinePkReqDTO onlinePkReqDTO);

    /**
     * 直播pk接口
     *
     * @param roomId 直播间id
     */
    Long queryOnlinePkObjId(Integer roomId);
}